home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / zunmqr.z / zunmqr
Text File  |  1998-10-30  |  4KB  |  133 lines

  1.  
  2.  
  3.  
  4. ZZZZUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))                                                          ZZZZUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      ZUNMQR - overwrite the general complex M-by-N matrix C with   SIDE = 'L'
  10.      SIDE = 'R' TRANS = 'N'
  11.  
  12. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      SUBROUTINE ZUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK,
  14.                         LWORK, INFO )
  15.  
  16.          CHARACTER      SIDE, TRANS
  17.  
  18.          INTEGER        INFO, K, LDA, LDC, LWORK, M, N
  19.  
  20.          COMPLEX*16     A( LDA, * ), C( LDC, * ), TAU( * ), WORK( LWORK )
  21.  
  22. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  23.      ZUNMQR overwrites the general complex M-by-N matrix C with TRANS = 'C':
  24.      Q**H * C       C * Q**H
  25.  
  26.      where Q is a complex unitary matrix defined as the product of k
  27.      elementary reflectors
  28.  
  29.            Q = H(1) H(2) . . . H(k)
  30.  
  31.      as returned by ZGEQRF. Q is of order M if SIDE = 'L' and of order N if
  32.      SIDE = 'R'.
  33.  
  34.  
  35. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  36.      SIDE    (input) CHARACTER*1
  37.              = 'L': apply Q or Q**H from the Left;
  38.              = 'R': apply Q or Q**H from the Right.
  39.  
  40.      TRANS   (input) CHARACTER*1
  41.              = 'N':  No transpose, apply Q;
  42.              = 'C':  Conjugate transpose, apply Q**H.
  43.  
  44.      M       (input) INTEGER
  45.              The number of rows of the matrix C. M >= 0.
  46.  
  47.      N       (input) INTEGER
  48.              The number of columns of the matrix C. N >= 0.
  49.  
  50.      K       (input) INTEGER
  51.              The number of elementary reflectors whose product defines the
  52.              matrix Q.  If SIDE = 'L', M >= K >= 0; if SIDE = 'R', N >= K >=
  53.              0.
  54.  
  55.      A       (input) COMPLEX*16 array, dimension (LDA,K)
  56.              The i-th column must contain the vector which defines the
  57.              elementary reflector H(i), for i = 1,2,...,k, as returned by
  58.              ZGEQRF in the first k columns of its array argument A.  A is
  59.              modified by the routine but restored on exit.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ZZZZUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))                                                          ZZZZUUUUNNNNMMMMQQQQRRRR((((3333FFFF))))
  71.  
  72.  
  73.  
  74.      LDA     (input) INTEGER
  75.              The leading dimension of the array A.  If SIDE = 'L', LDA >=
  76.              max(1,M); if SIDE = 'R', LDA >= max(1,N).
  77.  
  78.      TAU     (input) COMPLEX*16 array, dimension (K)
  79.              TAU(i) must contain the scalar factor of the elementary reflector
  80.              H(i), as returned by ZGEQRF.
  81.  
  82.      C       (input/output) COMPLEX*16 array, dimension (LDC,N)
  83.              On entry, the M-by-N matrix C.  On exit, C is overwritten by Q*C
  84.              or Q**H*C or C*Q**H or C*Q.
  85.  
  86.      LDC     (input) INTEGER
  87.              The leading dimension of the array C. LDC >= max(1,M).
  88.  
  89.      WORK    (workspace/output) COMPLEX*16 array, dimension (LWORK)
  90.              On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
  91.  
  92.      LWORK   (input) INTEGER
  93.              The dimension of the array WORK.  If SIDE = 'L', LWORK >=
  94.              max(1,N); if SIDE = 'R', LWORK >= max(1,M).  For optimum
  95.              performance LWORK >= N*NB if SIDE = 'L', and LWORK >= M*NB if
  96.              SIDE = 'R', where NB is the optimal blocksize.
  97.  
  98.      INFO    (output) INTEGER
  99.              = 0:  successful exit
  100.              < 0:  if INFO = -i, the i-th argument had an illegal value
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.